// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.xiaomi.miui.analyticstracker.service; import android.content.Context; import android.util.Log; import com.xiaomi.miui.analyticstracker.Dispatchable; import com.xiaomi.miui.analyticstracker.Event; import com.xiaomi.miui.analyticstracker.EventReader; import com.xiaomi.miui.analyticstracker.ObjectBuilder; import com.xiaomi.miui.analyticstracker.utils.EventUtils; import com.xiaomi.miui.analyticstracker.utils.SysUtils; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; // Referenced classes of package com.xiaomi.miui.analyticstracker.service: // PolicyHelper, XiaomiDispatcher, Policy public class DispatcherManager { private static final String f = "DispatcherManager"; private Map a; private ObjectBuilder b; private EventReader c; private PolicyHelper d; private Context e; public DispatcherManager(Context context) { a = new HashMap(); b = new ObjectBuilder(); c = new EventReader(); d = new PolicyHelper(); e = context; b.registerClass(com/xiaomi/miui/analyticstracker/service/XiaomiDispatcher, "xiaomi"); } private void a(String s, List list) { c.open(e, s); Iterator iterator = c.readEvents(null, list).iterator(); do { Event event; Policy policy; label0: { if (iterator.hasNext()) { event = (Event)iterator.next(); policy = d.getPolicy(event.getPolicy()); if (policy == null) { continue; } if (SysUtils.isWifiConnected(e) && EventUtils.enableWrite(e)) { break label0; } } c.close(); return; } policy.execute(event); } while (true); } public static boolean databaseExist(Context context, String s) { return context.getDatabasePath(s).exists(); } public void dispatch(List list) { Dispatchable dispatchable; for (Iterator iterator = a.keySet().iterator(); iterator.hasNext(); dispatchable.start(e, (String)a.get(dispatchable))) { dispatchable = (Dispatchable)iterator.next(); } d.clear(); int i = EventUtils.getDatabaseIndexFromTime(System.currentTimeMillis()); int j = 0; label0: do { label1: { if (j < 7) { if (--i < 0) { i += 7; } if (SysUtils.isWifiConnected(e) && EventUtils.enableWrite(e)) { break label1; } } d.end(); for (Iterator iterator1 = a.keySet().iterator(); iterator1.hasNext(); ((Dispatchable)iterator1.next()).stop()) { } break label0; } String s = EventUtils.getDatabaseName(i); if (databaseExist(e, s)) { a(s, list); } j++; } while (true); } public void switchDispatcher(Map map) { a.clear(); if (map != null) { for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();) { String s = (String)iterator.next(); Dispatchable dispatchable = (Dispatchable)b.buildObject(s); if (dispatchable == null) { Log.d("DispatcherManager", String.format("server:%s does not exist", new Object[] { s })); } else { a.put(dispatchable, map.get(s)); } } if (map.size() > 0) { Event.setDispatcher(new ArrayList(a.keySet())); } } } }